<template>
    <Select
        v-model="model14"
        :multiple="isInOpt"
        :label-in-value="true"
        :placeholder="placeholder"
        @on-change="onselectChange"
        >
        <Option v-for="(option, index) in options2" :value="option.value" :key="index">{{option.label}}</Option>
    </Select>
</template>
<script>
export default {
    props:{
        //组件配置参数
        params:{
            type:Object,
            require:true
        },
        values:{
            type:Array,
            require:true
        },
        valueNames:{
            type:Array,
            require:true
        },
        //是否为in操作符
        isInOpt:{
            type:Boolean,
            default:false
        },
        //输入框提醒值
        placeholder:{
            type:String,
            default: ''
        }
    },
    data () {
        return {
            model14: [],
            loading2: false,
            options2: [],
            list: ['Alabama', 'Alaska', 'Arizona', 'Arkansas']
        }
    },
    methods: {
        onselectChange (object) {

            //值和名称在非in操作符时只取第一个元素，in时取所有元素
            //规则值
            let values=['1','2','3']
            //表达式中文名
            let valuesName=['呵呵1','呵呵2','呵呵3']
            if(this.isInOpt){
                if(object&&object.length>0){
                    values.splice(0,values.length)
                    values.push(...this.model14);
                    valuesName.splice(0,valuesName.length)
                    object.forEach(sel=>{
                        valuesName.push(sel.label);
                    })
                }else {
                    valuesName.splice(0,valuesName.length)
                    values.splice(0,values.length)
                }

                //输入值是否合法 true合法，false不合法
                let validate=values.length>0;
                // 值不合法提示信息
                let message=(values.length>0)?'':'必须选择';
                //触发父组件写值及校验
                this.$emit("valueChange",values,valuesName,validate,message)
            }else{
                if(object){
                    values.splice(0,values.length)
                    values.push(this.model14);
                    valuesName.splice(0,valuesName.length)
                    valuesName.push(object.label);
                    //输入值是否合法 true合法，false不合法
                    let validate=values.length>0;
                    // 值不合法提示信息
                    let message=(values.length>0)?'':'必须选择';
                    //触发父组件写值及校验
                    this.$emit("valueChange",values,valuesName,validate,message)
                }else{
                    values.splice(0,values.length)
                    valuesName.splice(0,valuesName.length)
                    //输入值是否合法 true合法，false不合法
                    let validate=false;
                    // 值不合法提示信息
                    let message='必须选择';
                    //触发父组件写值及校验
                    this.$emit("valueChange",values,valuesName,validate,message)
                }

            }
        }
    },
    created(){
        let index=1;
        const list = this.list.map(item => {
            return {
                value: ''+index++,
                label: item
            };
        });
        this.options2.push(...list);
        console.log(this.params)
        this.model14.push(...this.values)
        console.log(this.values)
    }
}
</script>
